Programmable devices such as a programmable logic device (PLD) may be configured to perform a wide variety of functions. A PLD may be configured or “programmed” to perform a particular function using data that configures the programmable logic and routing resources to implement a particular function. The configuration data loaded into the PLD may be loaded from a source external to the PLD.
There are a variety of tools available for programming a PLD from an external source. For example, the Parallel Cable IV tool from Xilinx connects the parallel port of a workstation or personal computer to the JTAG interface of the target system. This type of tool includes both software and hardware components. The software component executes on the user's workstation and controls the overall configuration process. The hardware component physically connects a port of the user's workstation to the targeted system and includes the cabling, connectors, and in some instances PLDs that implement a hardware level interface to the targeted system.
Programming tools (or “programmers” for short), such as the Parallel Cable IV tool, often support programming a number of different devices. This eliminates having a dedicated programmer for each different device. However, the programming interface of a device may change from one device generation to the next, which means the programmer may need to be updated. Thus, another programmer, perhaps specialized, may be needed to program the out-of-date programmer. In some programmers, the bus within the hardware component of the programmer may not be externally accessible. This means that in order to update the programmer some disassembly of the hardware may be required.
The present invention may address one or more of the above issues.